package it.gat.client.view;

import it.gat.controller.TipologiaDispositivoController;
import it.gat.model.TipologiaDispositivo;
import java.awt.Container;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.beans.PropertyVetoException;

public class TipologiaDispositivoInternalFrame extends JInternalFrame {
	private JTextField txtDescrizione;
	
	private Container container;
	private JInternalFrame that;
	private TipologiaDispositivo tipologiaDispositivo;
	private boolean edit;

	/**
	 * Create the frame.
	 */
	public TipologiaDispositivoInternalFrame(String title,final boolean edit,final Container desktop,final TipologieDispositivoInternalFrame frame) {
		super(title);
		setBounds(0, 0, 645, 120);
		getContentPane().setLayout(null);
		container = desktop;
		that = this;
		this.edit=edit;
		
		JLabel lblCognome = new JLabel("Descrizione");
		lblCognome.setBounds(10, 14, 75, 14);
		getContentPane().add(lblCognome);
		
		txtDescrizione = new JTextField();
		txtDescrizione.setColumns(10);
		txtDescrizione.setBounds(95, 11, 522, 20);
		getContentPane().add(txtDescrizione);
		
		JButton btnSalva = new JButton("Salva");
		btnSalva.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (!edit)
				{
					TipologiaDispositivoController tdc = new TipologiaDispositivoController();
					TipologiaDispositivo tipologiaDispositivo = new TipologiaDispositivo();
					tipologiaDispositivo.setDescrizione(txtDescrizione.getText());
					tdc.insertTipologiaDispositivo(tipologiaDispositivo);
					frame.refresh();
					try {
						that.setClosed(true);
					} catch (PropertyVetoException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
				}
				else
				{
					TipologiaDispositivoController tdc = new TipologiaDispositivoController();
					tipologiaDispositivo.setDescrizione(txtDescrizione.getText());
					tdc.updateTipologiaDispositivo(tipologiaDispositivo);
					frame.refresh();
					try {
						that.setClosed(true);
					} catch (PropertyVetoException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
				}
			}
		});
		btnSalva.setBounds(431, 56, 89, 23);
		getContentPane().add(btnSalva);
		
		JButton btnAnnulla = new JButton("Annulla");
		btnAnnulla.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				int n = JOptionPane.showConfirmDialog(
						desktop,
					    "Sei sicuro di uscire?",
					    "Conferma",
					    JOptionPane.YES_NO_OPTION,
					    JOptionPane.QUESTION_MESSAGE);
				if (n==JOptionPane.YES_OPTION)
				{
					try {
						that.setClosed(true);
					} catch (PropertyVetoException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		});
		btnAnnulla.setBounds(530, 56, 89, 23);
		getContentPane().add(btnAnnulla);

	}
	
	public void setTipologiaDispositivo(TipologiaDispositivo tipologiaDispositivo)
	{
		this.tipologiaDispositivo=tipologiaDispositivo;
		txtDescrizione.setText(tipologiaDispositivo.getDescrizione());
	}
}
